package cn.edu.lcu.cs.javaprogramming.lambda;

import cn.edu.lcu.cs.javaprogramming.oop.animal.Flyable;
import lombok.extern.java.Log;
import org.junit.jupiter.api.Test;

/**
 * Lambda语法： <code> ([数据类型 参数名, 数据类型 参数名, ...]) -> {表达式主体} </code>
 *
 * @author ling
 * @date 2022/3/23 16:05
 */
@Log
public class LambdaUfoDemo {

    @Test
    void ufoAnonymousInnerClass() {
        // 创建UFO实例，实现Flyable接口，匿名内部类
        Flyable ufo = new Flyable() {
            @Override
            public void fly() {
                System.out.println("北京天空出现巨型光圈，悬浮10分钟后消失，究竟是什么？");
            }
        };
        ufo.fly();
    }

    @Test
    void ufoLambda() {
        // 创建UFO实例，实现Flyable接口，Lambda表达式
        Flyable ufo = () -> System.out.println("北京天空出现巨型光圈，悬浮10分钟后消失，究竟是什么？");
        ufo.fly();
    }


}
